1. Field
This method, telecommunication device, system or software module relates generally to the field of telecommunication.
2. Description of the Related Art
The current global telephone network, the PSTN (Public Switched Telephone Network), is built for voice communication of limited bandwidth (only 3.5 kHz). Broadband networks, e.g. the Internet, can also be used for real-time person-to-person communication, e.g. voice communication, often called VoIP (Voice over Internet Protocol). The Internet transports data between endpoints, regardless of the data content or the application and is therefore called a transport network.
VoIP, or more generally Real-Time Communication (RTC), is also used for multimedia communication beyond the Plain Old Telephony Service (POTS), e.g. video, presence and instant messaging. There are standards and drafts for RTC, often defined by the Internet Engineering Task Force (IETF).
Session Initiation Protocol (SIP, RFC 3261) is widely used protocol for RTC. RFCs (Request For Comments) are Internet standards defined by the IETF. Web Real-Time Communication (WebRTC) is RTC built into web browsers under development and standardization by IETF and World Wide Web Consortium (W3C).
RTC protocols are used to establish media streams such as voice and video, between endpoint devices, often providing telephony-like functions and services. They often define the call setup procedure, that is how a call is initiated, done and completed.
A data communication network is typically a packet switch network like the Internet, forwarding packets of data to destinations specified by the address of the packets. The packets typically also contain the source address from which it was sent. Data packets may be messages containing requests, responses, or data representing documents, files or media like movies and voice and are exchanged between endpoints.
A data communication network may also include private segments, intranets, or Local Area Networks (LANs) that communicate with the global network through a Network Address Translator (NAT) or firewall, which often are combined and just called either NAT or firewall or sometimes access router.
In a packet switched network, traffic is data packets being sent and received.
Real-time traffic is streams of voice or other media like video. Such media streams are used by telephony-like services or calls over a network.
A media path transports such media stream over a network, which may consist of several network segments of different types.
Endpoints such as various devices, clients and servers have one or several network interfaces like Ethernet, WiFi or LTE radio interfaces, with which they connect to network access points.
An address in a network may be a number (like an IPv4 or an IPv6 address) or a symbolic address, like a Fully Qualified Domain Name (FQDN), that is further resolved into a number address, e.g. by a Domain Name System (DNS) service.
Such addresses may also be further specified by port numbers, to indicate a protocol being used or simply used as an extension to the address types exemplified above (e.g. an IPv4 address with specified port 132.64.75.1:1234), which in this context may be one form of a network address in general.
Endpoints such as various devices, clients and servers have one or several addresses in a network, at which they can send or receive traffic. Typically, the address to an endpoint is dependent of network interface of the endpoint and the access point of the network.
A server is a network device accessed by clients. The client can be a program on a computer or a device connected to the network.
An application server is a server offering a service or a function to users.
Network access points have different locations and can use different fixed access technologies such as Ethernet, ADSL modems, cable modems, fiber and various wireless and mobile technologies such as WiFi, 3G, 4G, LTE and more.
In addition to general network segments like the public Internet and private intranets or LANs, there are application specific network segments, e.g. telephony type of networks that carry signaling and media for voice and maybe for video, but not general data traffic. Voice over IP (VoIP) may be either over a general data network like the Internet or Over The Top (OTT) as it is called in the mobile world, or over an application specific network segment like Voice over LTE (VoLTE) that uses IP networks.
Signaling are typically messages in signaling channels between endpoints, proxies and servers over network segments. The signaling over a signaling channel can be interrupted, e.g. when loosing wireless coverage, changing interface of a device or changing access point of a network segment, but can thereafter be recovered to reestablish signaling connectivity.
Firewalls and NATs typically block real time communication, an issue that either is resolved by Session Border Controllers (SBCs) at the edge of the private network or by methods or protocols such as e.g. Session Traversal Utilities for NAT (STUN, RFC 5389), Traversal Using Relays around NAT (TURN, RFC 5766) and Interactive Connectivity Establishment (ICE, RFC 5245).
A TURN server relays traffic between two network addresses and is an example of a relay server. A TURN server can be discovered by an RTC endpoint and in a sealed network segment it then has to be used for RTC media traffic outside the sealed network segment.
SBCs also implement security and interoperability functions for VoIP and RTC and are often used for connecting Internet Telephony Service Provider's (ITSP's) VoIP services to IP-PBXs, also called SIP trunking.
An IP-PBX is an Internet Protocol (IP) Private Branch eXchange (PBX).
Call centers are most often based on IP-PBXs or Unified Communications (UC) solutions receiving calls via an ITSP's SIP Trunk. These calls are typically initiated via toll free numbers (800 numbers in the US) from the telephony network.
PBX or UC functionality can be Interactive Voice Response (IVR), Queues, Voice and Video mail.
Instant Messaging (IM), presence, screen sharing and group calls are other RTC functions.
A protocol is a set of rules defining language and methods of communication.
An example is the Session Description Protocol (SDP, RFC 4566) that describes which media and codecs to use and where the media should be sent. Such real-time communication can be offered by one endpoint to another endpoint that can answer with its willingness and media capabilities to set up media communication session between the endpoints. That is an Offer and Answer protocol (O/A protocol).
The O/A protocol typically determines the media types, e.g. voice and video specifying which codec to use.
Such O/A protocol may also suggest methods and candidates how to set up the media path between endpoints, as e.g. defined by the ICE protocol for NAT traversal.
A media path is typically set up for the purpose of real-time communication, while the wider term communication path refers to a direct or indirect channel for transferring data that may or may not represent media.
A media endpoint is an endpoint to which a media path over a network is coupled to allow media streams to flow, typically containing real-time traffic representing voice or video.
An established media path between media endpoints that is set up again is said to be reestablished.
A media endpoint has peer-to-peer media capability if it can set up a media path directly to another media endpoint with or without going through a server, e.g. a TURN server. Mutual peer-to-peer media capability means that two endpoints are compatible and can set up a direct media path between each other.
The Session Initiation Protocol (SIP) is used to find users and set up calls between SIP clients, their real-time communication devices, e.g. hardware SIP phones or software SIP phones being a software application on a computer. SIP is a signaling protocol using registrar and proxy servers to find users and further uses the SDP O/A protocol to establish a media channel between SIP client endpoints. A SIP client typically includes the SIP user agent, interfacing users to the SIP proxy.
Web Real Time Communication (WebRTC) is a set of recommendations and protocols under standardization for extending web browsers to allow real-time communication between them. WebRTC does not specify the signaling for finding users, but allows web browsers connected to the same web server to establish a media channel for real-time communication between them, using the SDP O/A protocol. WebRTC uses the ICE protocol, including STUN and TURN, to set up a media path between the WebRTC media endpoints.
RTC devices including media endpoints may therefore be implemented in WebRTC browsers, which retrieve their program code (in HTML and Java Script) from web servers.
With WebRTC, the media streams are encrypted using the DTLS-SRTP protocol and are protected against “man in the middle” attacks. The protection involves exchange of fingerprints (digital signatures of the certificates used for the encryption key generation) between the parties over another channel or path than used for generating the encryption keys. This means that the media traffic cannot be decrypted by just intercepting the media path or the signaling path.
A web browser is a program running on computers or smartphones for accessing the World Wide Web (the web), a service on the Internet or an Intranet implemented on a web server.
Software applications are other programs running on computers or smartphones.
A web server may transfer program code, typically Java Script, to a web browser for execution therein, which is a technology used with WebRTC.
A HyperText Transfer Protocol (HTTP) URL (or simply “a link”) identifies a web resource and specifies the acting upon executing it. For example, a URL may refer to the web resource/wiki/Main_Page whose related program code is obtainable via HTTP from a server whose domain name is example.org.
Executing a HTTP URL in a WebRTC browser, may initiate a call to be setup from the web server being addressed, which is a useful feature of the emerging WebRTC technology. Such URL may contain a telephone number and other information of the call to setup, e.g. a limitation in time for when the URL can be used for calling.
WebRTC HTTP URLs may be long and obscure and there are services shortening links, such as Bitly, using its short domain name bit.ly after a unique string that represents a long HTTP URL that Bitly has stored, so when a URL is executed in a web browser, it goes to Bitly that redirects it to the full long web link.
Such WebRTC click-to-call link can be generated by and stored in a WebRTC server that will be called when clicked in a browser. A shortened link, e.g. consisting of a unique string followed by the domain name of the server, would be passed to the user that is intended to execute it in a WebRTC browser. Time limiting can be implemented by encrypting the last valid time or simply by only storing the link translation in the WebRTC server for as long as it is valid.
Click-to-call links, or buttons executing such links, can also be used on Web sites and are then often context-sensitive, i.e. they can carry information of whom that clicked the link, which selections that may have been made, when it was clicked and from where it was clicked.
Some browsers support WebRTC, some do not, some do it better than others. It may therefore be advantageous to define and identify a specific domain name extension, e.g. wrtc in wrtc.company.com, in a WebRTC HTTP URL link for invoking WebRTC functionality, that otherwise may not be available.
Gateways are used to convert between different network segments or protocols to allow a service to function between more users.
Clients access their servers when needed, but RTC clients, e.g. SIP or WebRTC clients, also need to maintain a connection to their server for incoming signaling, for an incoming call or for reestablishing a media path for an ongoing call.
A media endpoint typically knows between which addresses a media path, carrying media traffic (a media stream) is setup and can thereby determine if it is dependent on a particular address change.
Smartphones, that are mobile devices, may go to sleep when not in use to save remaining battery time, but can often be woken up to e.g. receive a message or prepare for an incoming VoIP call by so called push notifications from a centralized push notification server.
VoIP, softclients, smartphones and extended communication possibilities and functionality with RTC, are making the Graphical User Interface (GUI) of RTC clients important. One way of improving the GUI is to organize contacts (persons or users) in separate lists based on the call state (e.g. idle, active, in a group call, on hold, in queue n, in transfer, incoming unanswered calls etc.), where each contact (in a list, or single) have an expandable action menu listing currently available selections (e.g. Call, Hang-up, Transfer, Hold, Connect in conference, Mute/Un-mute Video, Mute/Un-mute Voice, Send message, Change presence and possibly also administrative tasks). Such menu can be expanded through a small symbol, e.g. the three vertical dots symbol or the menu lines symbol, commonly used by smartphones, at the line of the contact.
In a real time media channel, Dual Tone Multi Frequency (DTMF) digits can be transferred either encoded as audio or out-of-band in data packets. DTMF defined symbols are 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, #, *, A, B, C and D.